$(function () {
    //需求：初始化文章分类列表
    //因为添加，修改，删除，后都要重新渲染页面所以要封装函数
    //调用函数
    initArtcateList()
    //封装函数
    function initArtcateList() {
      axios({
        url: "/my/article/cates",
        method: "get",
      }).then((res) => {
        //成功回调
        // console.log(res.data)
        if (res.data.status !== 0) {
          return layer.msg(res.data.message)
        }
        //成功后直接渲染
        let arr = []
        //遍历返回的数据
        res.data.data.forEach(function (ele) {
          arr.push(
            ` <tr>
                   <td>${ele.Id}</td>
                   <td>${ele.name}</td>
                   <td>${ele.alias}</td>
                   <td>
                       <button data-id="${ele.Id}"  class="btn-edit layui-btn layui-btn-xs">修改</button>
                       <button data-id="${ele.Id}" class="layui-btn del-edit  layui-btn-xs layui-btn-danger">删除</button>
                      </td>
              </tr>`
          )
        })
        $("tbody").empty().html(arr.join(""))
      })
    }
  
    //需求2：点击按钮，弹出添加类别对话框
    // 定义一个全局变量，接受open()的索引值，将来用于关闭对话框
    let indexAdd = 0
    $("#addBtn").on("click", function () {
      indexAdd = layer.open({
        type: 1,
        title: "添加文章类别",
        area: ["500px", "260px"],
        content: ` <form id="addForm" class="layui-form" action="">
                       <div class="layui-form-item">
                         <label class="layui-form-label">分类名称</label>
                         <div class="layui-input-block">
                           <input type="text" name="name" required  lay-verify="required" placeholder="请输入分类名称" autocomplete="off" class="layui-input">
                         </div>
                       </div>
                       <div class="layui-form-item">
                 <label class="layui-form-label">分类别名</label>
                 <div class="layui-input-block">
                   <input type="text" name="alias" required  lay-verify="required" placeholder="请输入分类别名" autocomplete="off" class="layui-input">
                 </div>
                       </div>
                       <div class="layui-form-item">
                                 <div class="layui-input-block">
                           <button  class="layui-btn" lay-submit lay-filter="formDemo">确认修改</button>
                           <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                         </div>
                       </div>
                </form>`,
      })
    })
  
    //需求3：添加文章分类-后添加的动态元素，需要使用事委托
    $("body").on("submit", "#addForm", function (e) {
      e.preventDefault()
      //添加分类
      axios({
        url: "/my/article/addcates",
        method: "post",
        data: $(this).serialize(),
      }).then((res) => {
        //成功回调
        //  console.log(res)
        if (res.data.status !== 0) {
          return layer.msg(res.data.message)
        }
        // 成功：提示。初始化文章分类
        layer.msg("恭喜您，添加文章类别成功")
        initArtcateList()
        //关闭对话框
        layer.close(indexAdd)
      })
    })
  
    //修改4：修改分类弹出层
    let indexEdit = 0
    $('tbody').on('click', '.btn-edit', function () {
  
      indexEdit = layer.open({
        type: 1,
        title: "修改文章类别",
        area: ["500px", "260px"],
        content: ` <form id="editForm" class="layui-form" lay-filter='editForm' >
                      <input type='hidden' name='Id'>
                       <div class="layui-form-item">
                         <label class="layui-form-label">分类名称</label>
                         <div class="layui-input-block">
                           <input type="text" name="name" required  lay-verify="required" placeholder="请输入分类名称" autocomplete="off" class="layui-input">
                         </div>
                       </div>
                       <div class="layui-form-item">
                 <label class="layui-form-label">分类别名</label>
                 <div class="layui-input-block">
                   <input type="text" name="alias" required  lay-verify="required" placeholder="请输入分类别名" autocomplete="off" class="layui-input">
                 </div>
                       </div>
                       <div class="layui-form-item">
                                 <div class="layui-input-block">
                           <button class="layui-btn" lay-submit lay-filter="formDemo">确认修改</button>
                           <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                         </div>
                       </div>
                </form>`,
      })
      // 点击编辑按钮做两件事   2.赋值;
      // (获取数据，和渲染数据，要写到.btn-edit的点击事件里面)
      let id = $(this).attr('data-id')
      // 发送ajax
      axios({
        url: '/my/article/cates/' + id,
        method: 'get',
      }).then(res => {
        //成功回调
        // console.log(res.data)
        if (res.data.status !== 0) {
          return layer.msg(res.data.message)
        }
        // 成功后渲染：layui.form.val()
        layui.form.val('editForm', res.data.data)
      });
    })
  
    // 需求5：修改文章分类
    $('body').on('submit', '#editForm', function (e) {
      e.preventDefault()
      // 修改分类
      axios({
        url: '/my/article/updatecate',
        method: 'post',
        data: $(this).serialize()
      }).then(res => {
        //成功回调
        // console.log(res)
        if (res.data.status !== 0) {
          return layer.msg(res.data.message)
        }
        layer.msg('恭喜您，修改文章类别成功!')
        initArtcateList()
        // 关闭对话框
        layer.close(indexEdit)
      });
    })
  
    // 需求6：删除
    $('tbody').on('click', '.del-edit', function () {
      // 获取自定义属性值
      let id = $(this).attr('data-id')
      
      layer.confirm('确认删除吗?', { icon: 3, title: '提示' }, function (index) {
        axios({
          url:'/my/article/deletecate/' +  id,
          // method:'get',
        }).then(res=>{
          //成功回调
          // console.log(res)
          if(res.data.status !==0){
            return layer.msg(res.data.message)
          }
          layer.msg('恭喜您，删除文章类别成功!')
          initArtcateList()
        });
        layer.close(index);
      })
  
    })
  })